/**
 * 岗位管理
 * 
 * @return {}
 */
var priPostsTree = function() {
	var priPostsTreePanel = new Ext.tree.TreePanel({
				id : 'priPostsTreePanel',
				region : 'west',
				width : 350,
				autoScroll : true,
				enableDD : false,// 是否支持拖拽效果
				loader : new Ext.tree.TreeLoader({
							dataUrl : __ctxPath + "/systemPost/selectPostTree"
						}),
				rootVisible : false,
				root : new Ext.tree.AsyncTreeNode({
							draggable : false,
							leaf : false,
							expand : true
						}),
				tbar : [{
							xtype : "button",
							text : "展开",
							iconCls : "btn-expand",
							scope : this,
							handler : function() {
								priPostsTreePanel.expandAll();
							}
						}, {
							xtype : "tbseparator"
						}, {
							xtype : "button",
							text : "收起",
							iconCls : "btn-collapse",
							scope : this,
							handler : function() {
								priPostsTreePanel.collapseAll();
							}
						}, {
							xtype : "tbseparator"
						}, "->", {
							id : "refresh",
							xtype : "button",
							text : "刷新",
							iconCls : "btn-refresh",
							handler : function() {
								priPostsTreePanel.getRootNode().reload();
							}
						}]
			});

	// priPostsTreePanel.expandAll();
	priPostsTreePanel.on('rightClickCont', priPostsTreePanel.rightClick,
			priPostsTreePanel);

	var rightClick = new Ext.menu.Menu({
		items : [{
					text : '新增子节点',
					iconCls : "btn-add",
					handler : function() {
						var selectModel = priPostsTreePanel.getSelectionModel();
						var node = selectModel.getSelectedNode();
						var rank = parseInt(node.attributes.url) + 1;

						Ext.getCmp('savePriPosts').enable();
						Ext.getCmp('priPostsForm').getForm().reset();

						Ext.getCmp('priPosts_parentId').setValue(node.id);
						Ext.getCmp('priPosts_parentId_hidden')
								.setValue(node.id);
						Ext.getCmp("flag").setValue("insert");
					}
				}]
	});

	// 添加点击事件
	priPostsTreePanel.on('click', function(node) {
				if (node.id != 0) {
					Ext.getCmp('savePriPosts').enable();
					Ext.getCmp('priPostsForm').load({
						url : __ctxPath + "/systemPost/selectPostMsgById",
						params : {
							postId : node.id
						},
						root : 'data',
						success : function(form, action) {
							var jsonData = action.result.data;
							Ext.getCmp('priPosts_id_hidden')
									.setValue(jsonData.id);
							Ext.getCmp("flag").setValue("update");
						},
						failure : function(form, action) {
							Ext.Msg.alert("提示", "数据加载失败");
						}
					});
				}
			});

	// 增加右键弹出事件
	priPostsTreePanel.on('contextmenu', function(node, event) {// 声明菜单类型
				event.preventDefault();// 这行是必须的，使用preventDefault方法可防止浏览器的默认事件操作发生。
				node.select();
				rightClick.showAt(event.getXY());// 取得鼠标点击坐标，展示菜单
			});

	return priPostsTreePanel;
}

var updatepriPosts = function() {
	var priPostsBaseInfoField = new Ext.form.FieldSet({
				collapsible : false,
				border : false,
				buttonAlign : 'center',
				layout : 'form',
				items : [{
							xtype : 'textfield',
							id : 'priPosts_name',
							name : 'name',
							anchor : '100%',
							allowBlank : false,
							blankText : '不能为空...',
							fieldLabel : '名称'
						}, {
							xtype : 'compositefield',
							fieldLabel : '是否可用',
							items : [{
										xtype : 'radio',
										boxLabel : '是',
										inputValue : "1",
										name : "isUseable",
										checked : true
									}, {
										xtype : 'radio',
										boxLabel : '否',
										name : "isUseable",
										inputValue : "0"
									}]
						}, {
							xtype : 'textfield',
							fieldLabel : '父编号',
							anchor : '100%',
							disabled : true,
							id : 'priPosts_parentId',
							name : 'parentId'
						}, {
							xtype : 'textfield',
							fieldLabel : '编号',
							anchor : '100%',
							disabled : true,
							name : 'id'
						}, {
							xtype : 'textfield',
							fieldLabel : '创建人',
							anchor : '100%',
							disabled : true,
							name : 'createdMan'
						}, {
							xtype : 'textfield',
							fieldLabel : '创建时间',
							anchor : '100%',
							disabled : true,
							name : 'createdAt'
						}, {
							xtype : 'textfield',
							fieldLabel : '修改人',
							anchor : '100%',
							disabled : true,
							name : 'updatedMan'
						}, {
							xtype : 'textfield',
							fieldLabel : '修改时间',
							anchor : '100%',
							disabled : true,
							name : 'updatedAt'
						}, {
							xtype : 'textfield',
							hidden : true,
							id : 'priPosts_id_hidden',
							name : 'id'
						}, {
							id : 'priPosts_parentId_hidden',
							xtype : 'textfield',
							name : 'parentId',
							hidden : true
						}, {
							xtype : 'textfield',
							hidden : true,
							value : '',
							id : 'flag'
						}]
			});

	var centerPanel = new Ext.form.FormPanel({
				title : '岗位信息',
				id : 'priPostsForm',
				region : 'center',
				frame : true,
				buttonAlign : 'center',
				labelAlign : 'right',
				border : false,
				reader : new Ext.data.JsonReader({
							success : 'success',
							root : 'data'
						}, [{
									name : 'id'
								}, {
									name : 'parentId'
								}, {
									name : 'name'
								}, {
									name : 'isUseable'
								}, {
									name : 'createdMan'
								}, {
									name : 'createdAt'
								}, {
									name : 'updatedMan'
								}, {
									name : 'updatedAt'
								}]),
				items : [priPostsBaseInfoField],
				buttons : [{
							text : '保存',
							id : 'savePriPosts',
							disabled : true,
							handler : function() {
								var flag = Ext.getCmp("flag").getValue();;
								savePriPosts(flag);
							}
						}]
			});
	return centerPanel;
}

var priPostsPanel = function() {
	return new Ext.Panel({
				anchor : '100% 100%',
				border : false,
				layout : 'border',
				items : [priPostsTree(), updatepriPosts()]
			});
};

var savePriPosts = function(flag) {
	var form = Ext.getCmp("priPostsForm");
	if (form.getForm().isValid()) {
		var url = "";
		if (flag == 'insert') {
			url = __ctxPath + "/systemPost/insertPost";
		}
		if (flag == 'update') {
			url = __ctxPath + "/systemPost/updatePostById";
		}
		Ext.Msg.confirm("信息确认", "您确认要保存吗？", function(c) {
					if (c == "yes") {
						form.getForm().submit({
							url : url,
							method : "POST",
							success : function(form, action) {
								Ext.MessageBox.show({
											title : "信息提示",
											msg : "保存成功!",
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.INFO
										});
								Ext.getCmp('priPostsTreePanel').getRootNode()
										.reload();
								Ext.getCmp("flag").setValue("update");
							},
							failure : function(c, d) {
								Ext.MessageBox.show({
											title : "操作信息",
											msg : "保存失败，请重新保存!",
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.ERROR
										});
							}
						});
					}
				});
	}
};
Ext.getCmp("centerTabPanel").getActiveTab().add(priPostsPanel());
Ext.getCmp("centerTabPanel").getActiveTab().doLayout();